package com.yonyou.cyxdms.sysAuth.service.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yonyou.cyx.framework.dao.base.SuperMapper;
import com.yonyou.cyxdms.sysAuth.service.dto.dealer.MsgRecordDTO;
import com.yonyou.cyxdms.sysAuth.service.dto.dealer.MsgRecordManagePO;
import com.yonyou.cyxdms.sysAuth.service.dto.dealer.MsgRecordPO;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author duxiaoguang
 * @since 2019-09-04
 */
public interface MsgRecordMapper extends SuperMapper<MsgRecordPO> {
    /**
     * 通知
     *
     * @param page
     * @param queryCondition
     * @return
     */
    public List<MsgRecordDTO> selectPageAll(Page<MsgRecordDTO> page, @Param("params") Map<String, Object> queryCondition);

    Integer addTzMsg(MsgRecordPO msgRecordPO);

    /**
     * 清空
     */
    public Integer deleteAll(@Param("userId") Integer userId);

    public List<MsgRecordDTO> selectPageByTz(Page<MsgRecordDTO> page, @Param("params") Map<String, Object> queryCondition);

    public List<Map<String, String>> selectMsgType();

    /**
     * 公告
     *
     * @param page
     * @param queryCondition
     * @return
     */
    public List<MsgRecordDTO> selectPageByGg(Page<MsgRecordDTO> page, @Param("params") Map<String, Object> queryCondition);

    public Integer addNotice(MsgRecordPO msgRecordPO);

    public Integer addNoticeCC(MsgRecordPO msgRecordPO);

    public List<Map<String, String>> queryNotices(Integer msgId);

    void updateStatus(@Param("params") MsgRecordManagePO msgRecordManagePO);
    void printUpdateStatus(@Param("params") MsgRecordDTO msgRecordManagePO);


    public List<Map<String, String>> queryNoticeMange(Integer msgId, Integer userId);

    public void updateNotice(MsgRecordPO msgRecordPO);

    public void updateNotices(Integer msgStatus);

    public void updateNoticeMsgStatus(MsgRecordPO msgRecordPO);

    void addNoticeMange(@Param("params") MsgRecordManagePO msgRecordManagePO);

    public List<Map<String, String>> queryMsgConfirmIs(Integer msgId);

    public List<MsgRecordDTO> queryNotiry(Page<MsgRecordDTO> page, @Param("params") Map<String, Object> queryCondition);

    public List<Map<String, String>> queryNoticeIs(Integer msgId);

    public List<Map<String, String>> queryNoticeNo(Integer msgId);

    public List<Map<String, String>> queryNoticeMaintain(Integer msgId, Integer userId);

    public List<Map<String, String>> queryNoticesMobile(Integer userId);

    public Integer deleteByIdGg(@Param("userId") Integer userId);

    public Integer queryDataSource(Integer userId);


    Integer selectByIds(@Param("params") Integer userId);
}
